//
var system = require('system');
var page = require('webpage').create();
//require("babel-polyfill");
// 如果是windows,设置编码为gbk，防止中文乱码,Linux本身是UTF-8
var osName = system.os.name;
if ('windows' === osName.toLowerCase()) {
	phantom.outputEncoding = "gbk";
}
// 获取第二个参数(即请求地址url).
var url = system.args[1];
//
var pageWidth = 600;
var pageHeight = 600;
var size = system.args[2].split('*');
if (size.length === 2) {
	pageWidth = parseInt(size[0], 10);
	pageHeight = parseInt(size[1], 10);
}else{
	// 获取窗口高度
	if (window.innerHeight) {
		pageHeight = window.innerHeight;
	} else if ((document.body) && (document.body.clientHeight)) {
		pageHeight = document.body.clientHeight;
	}
	// 通过深入 Document 内部对 body 进行检测，获取窗口大小
	if (document.documentElement && document.documentElement.clientHeight && document.documentElement.clientWidth) {
		pageHeight = document.documentElement.clientHeight;
		pageWidth = document.documentElement.clientWidth;
	}
}
page.viewportSize = {
	width : pageWidth,
	height : pageHeight
};
page.clipRect = {
	top : 0,
	left : 0,
	width : pageWidth,
	height : pageHeight
};
page.settings = {
        javascriptEnabled:false,
        loadImages:true,
        userAgent:'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.31 (KHTML, like Gecko) PhantomJS/19.0'
};
//
page.settings.loadImages = false; // 为了提升加载速度，不加载图片
page.settings.resourceTimeout = 10000;// 超过10秒放弃加载
//
block_urls = [ 'baidu.com' ];// 为了提升速度，屏蔽一些需要时间长的。比如百度广告
page.onResourceRequested = function(requestData, request) {
	for (url in block_urls) {
		if (requestData.url.indexOf(block_urls[url]) !== -1) {
			request.abort();
			// console.log(requestData.url + " aborted");
			return;
		}
	}
}
// 显示控制台日志.
page.onConsoleMessage = function(msg, lineNum, sourceId) {

};
// 打开给定url的页面.
var start = new Date().getTime();
page.open(url, function(status) {
	//
	if (status == 'success') {
		console.log('echarts页面加载完成,加载耗时:' + (new Date().getTime() - start)
				+ ' ms');
		// 由于echarts动画效果，延迟500毫秒确保图片渲染完毕再调用下载图片方法.
		//console.log("页面内容 ："+page.content);
		page.evaluate(function() {
			//有些页面是做了懒加载，因此将滚动条拖动到某个范围值得时候，图片才会去加载
			 window.scrollTo(0, 10000);
			console.log("开始调用了echarts的下载图片功能.");
			//ie9和一些低版本的高级浏览器对es6新语法并不支持
			//错误信息 ReferenceError: Can't find variable: Promise. 谷歌查看issue phantomjs版本有对ES6特性的不支持。
			//解决方式： 在页面入口文件引入 babel-polyfill
			//createimg();调用不了，直接使用界面的自动请求方法吧，只负责打开就行了
			console.log("调用了echarts的下载图片功能结束！");
		});
	} else {
		console.log("页面加载失败 Page failed to load!");
	}
	// 3秒后再关闭浏览器.
	setTimeout(function() {
		phantom.exit();
	}, 3000);
});